import { defaHttp, Api } from "../index";
import { ApiWkTaskList } from "../wk/list";
/**home数据 */
export async function apiHomeData(): Promise<void | ApiHomeData.Data> {
  const res = await defaHttp.post<Api.Res<ApiHomeData.Data>>("/index", undefined, {
    mode: { failMessage: true },
  });
  if (res.code !== 200) return;
  return res.data;
}
/**home数据 */
export namespace ApiHomeData {
  export interface Data {
    /**
     * 最新公告，示例：-
     */
    article: ApiArticle;
    /**
     * 常见问题，示例：-
     */
    question: QuestionItem[];
    kline: KlineItem[];
    last_price: string;
    /**威客任务设置 */
    task_setting: TaskSetting;
    task: TaskItem[];
    wkc: Wkc;
    address: ApiAddress;
    /**全网保价总流水 */
    totalInsuredFund: string;
  }
  /**
   * -，示例：-
   */
  export interface ApiAddress {
    /**
     * 项目默认lp地址，示例：0x1c2b7bf272998Bc85C975Af3A874DB52aFAb2722
     */
    pair_address: string | undefined;
    /**
     * 接单支付地址，示例：0x04a742ebf9aead98735b78a429186d72b7cc2efd
     */
    safe_address: string;
    router_address: string;
  }

  /**
   * -，示例：-
   */
  export interface Wkc {
    /**
     * -，示例：17.89
     */
    change: string;
    /**
     * -，示例：0x9facbcc39e71d546f09144d3b77b7a89ba10aa1a
     */
    contract_addr: string;
    /**
     * -，示例：18
     */
    decimal: number;
    /**
     * -，示例：1.00000000
     */
    price: string;
  }
  export interface TaskItem extends ApiWkTaskList.DataItem {}
  /**
   * 最新公告，示例：-
   */
  export interface ApiArticle {
    /**
     * 内容，示例：<p></p><p style="text-align: center;"></p>
     */
    content: string;
    /**
     * 示例：2
     */
    id: number;
    /**
     * 简介，示例：null
     */
    introduction: null;
    /**
     * 标题，示例：第二个标题
     */
    title: string;
    /**
     * 示例：2021-12-24 14:57:25
     */
    updated_at: string;
  }

  /**
   * 常见问题，示例：-
   */
  export interface QuestionItem {
    /**
     *
     * 示例：<p></p><p>其中<code>/upload</code>
     */
    content: string;
    /**
     * 示例：1
     */
    id: number;
    /**
     * 示例：简单的介绍下
     */
    introduction: string;
    /**
     * 示例：第一个文章
     */
    title: string;
    /**
     * 示例：2023-05-12 21:46:02
     */
    updated_at: string;
  }
  export interface KlineItem {
    time: number;
    open: string;
    high: string;
    low: string;
    close: string;
    volume: string;
  }
  export interface TaskSetting {
    /**
     * 申诉费用比例，示例：1
     */
    appeal_fees: string;
    /**
     * 波动保险金比例，示例：10
     */
    fluctuation_insurance_premium: string;
    /**
     * 平台服务费比例，示例：20
     */
    platform_service_fee_scale: string;
    /**接单任务保证金比率 */
    order_task_earnest_money: string;
    /**
     * 佣金不能低于本金的比例
     */
    task_commission_limit: string;
    /**营销基金申请设置 */
    insured_fund_max_limit: string;
    /**营销基金申请设置 */
    insured_fund_min_limit: string;
  }
}

/**获取k线数据 */
export async function apiWkcUsdtKline(
  data: ApiWkcUsdtKline.Req
): Promise<Api.Res<ApiWkcUsdtKline.DataItem[]>> {
  const res = await defaHttp.post<Api.Res<any>>("/kline", data);
  if (res.code !== 200) return res;
  res.data = Object.values(res.data).map((val: any) => {
    const v = JSON.parse(val);
    return {
      time: v.time * 1000,
      close: Number(v.close),
      open: Number(v.open),
      high: Number(v.high),
      low: Number(v.low),
      volume: Number(v.volume),
    };
  });
  return res;
}
/**获取k线数据 */
export namespace ApiWkcUsdtKline {
  export interface Req {
    interval: number;
  }
  export interface DataItem {
    time: number;
    open: number;
    high: number;
    low: number;
    close: number;
    volume: number;
  }
}
